const path = require('path');
const cookieParser = require('cookie-parser');
const logger = require('morgan');
const verificationToken = require("../utils/middleware/verificationToken")

/**
 * express中间件配置
 * @param app express实例
 * @param express express
 */
module.exports = (app, express) => {
    // 读取env文件
    require("dotenv").config();
    // 设置允许跨域访问该服务
    app.all('*', function (req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        next();
    });
    // 开发模式输出
    app.use(logger('dev'));
    // json解析中间件
    app.use(express.json());
    // x-www-form-urlencoded解析中间件
    app.use(express.urlencoded({extended: false}));
    // cookie解析中间件
    app.use(cookieParser());
    // 配置静态资源目录
    app.use(express.static(path.resolve(__dirname, '../public')));
    // 连接数据库
    require("../models/syncModel")
    // 验证token
    app.use(verificationToken)
    // 初始化路由
    require("../routes/init")(app);
    // 错误处理中间件
    app.use(require("../utils/middleware/errorMid"))
    // 404
    app.use((req,res,next)=>{
        // 走到这的时候 说明404了
        res.status(404).send({
            code:404,
            msg:"页面不存在",
            data:null
        })
    })
}
